package red.stu.mc.api.clone;

import net.minecraft.entity.Entity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3i;

public class BlockPos extends net.minecraft.util.math.BlockPos {
	
	public BlockPos(net.minecraft.util.math.BlockPos blockPos) {
		super(blockPos.getX(), blockPos.getY(), blockPos.getZ());
	}

	public BlockPos(int x, int y, int z) {
		super(x, y, z);
	}

	public BlockPos(double x, double y, double z) {
		super(x, y, z);
	}

	public BlockPos(Entity source) {
		this(source.posX, source.posY, source.posZ);
	}

	public BlockPos(Vec3d vec) {
		this(vec.x, vec.y, vec.z);
	}

	public BlockPos(Vec3i source) {
		this(source.getX(), source.getY(), source.getZ());
	}
	
	@Override
	public net.minecraft.util.math.BlockPos add(double x, double y, double z) {
		return super.add(x, y, z);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos add(int x, int y, int z) {
		return super.add(x, y, z);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos add(Vec3i vec) {
		return super.add(vec);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos crossProduct(Vec3i vec) {
		return super.crossProduct(vec);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos down() {
		return super.down();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos east() {
		return super.east();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos down(int n) {
		return super.down(n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos north() {
		return super.north();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos north(int n) {
		return super.north(n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos offset(EnumFacing facing) {
		return super.offset(facing);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos offset(EnumFacing facing, int n) {
		return super.offset(facing, n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos rotate(Rotation rotationIn) {
		return super.rotate(rotationIn);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos south() {
		return super.south();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos south(int n) {
		return super.south(n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos subtract(Vec3i vec) {
		return super.subtract(vec);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos toImmutable() {
		return super.toImmutable();
	}
	
	@Override
	public long toLong() {
		return super.toLong();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos up() {
		return super.up();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos up(int n) {
		return super.up(n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos west() {
		return super.west();
	}
	
	@Override
	public net.minecraft.util.math.BlockPos west(int n) {
		return super.west(n);
	}
	
	@Override
	public net.minecraft.util.math.BlockPos east(int n) {
		return super.east(n);
	}

}
